In performing various robotic tasks, it may be beneficial and/or necessary for robots to detect environmental objects and estimate poses (positions and/or orientations) for those detected objects. For example, an automated pallet jack robot needs to know where a pallet is before picking it up, a robotic arm needs to know where a table top is before placing a bottle on it, and a humanoid robot needs to know how a staircase locates before stepping on it.
Various techniques have been utilized for detecting objects and estimating their poses. For example, a robot may have access to a complete three-dimensional (“3D”) model of an object that was acquired using a 3D scanner to scan the object from all different angles and combining all the scans together to compute the complete 3D model. The robot may acquire data from a 3D laser scanner or other 3D vision sensor viewing a portion of the robot's environment, and map such data to the complete 3D model to determine the object is present and to estimate the object's pose. However, such a technique requires acquiring a complete 3D model of an object by scanning the object from all different angles and combining the scans together to compute the complete 3D model. This may be a time consuming step. Moreover, scanners required to perform this step may have constraints that make scanning impracticable for some larger objects such as some pallets, shelves, and/or stairs. Additional and/or alternative drawbacks of the aforementioned techniques and/or other techniques may be presented.